Error detection and correction systems remove errors introduced into data traveling through a channel from a transmitter to a receiver. In such a system, the transmitter appends to each set of message symbols a set of redundant check symbols in accordance with a code generator polynominal G(Z) known to both the transmitter and the receiver. The codeword thus generated contains sufficient information for the receiver to correct errors introduced during transit through the channel, as long as the number of erroneous symbols does not exceed half the number of check characters, using Reed-Solomon codes, for example. Such error detection and correction systems are useful over a wide variety of digital systems including digital recording systems, digital memory systems and digital communications systems.
One type of error detection and correction system uses Reed-Solomon codes to construct the redundant check characters (encode) at the transmitter and to correct errors (decode) at the receiver. The transmitter computes the redundant check symbols from the set of message characters using a standard Reed-Solomon encoder.